def spiralOrder(matrix):
    if not matrix: return []
    l, r, t, b, res = 0, len(matrix[0]) - 1, 0, len(matrix) - 1, []
    while True:
        for i in range(l, r + 1): res.append(matrix[t][i])
        t += 1
        if t > b: break
        for i in range(t, b + 1): res.append(matrix[i][r])
        r -= 1
        if l > r: break
        for i in range(r, l - 1, -1): res.append(matrix[b][i])
        b -= 1
        if t > b: break
        for i in range(b, t - 1, -1): res.append(matrix[i][l])
        l += 1
        if l > r: break
    return res


s = input().split(" ")
n = int(s[0])
m = int(s[1])
matrix = [None] * n
for i in range(n):
    matrix[i] = [int(x) for x in input().split(" ")]
res = spiralOrder(matrix)
for num in res:
    print(num, end=" ")
